In an increasingly networked world, more and more traffic, such as data, voice, and video, is transmitted over public and proprietary networks. When routing traffic through the network, it is desirable to be able to assign different types of traffic different priorities as the traffic traverses the network. Some applications require stringent limits on end-to-end traffic delay while other applications require minimal bandwidth guarantees.
One technique for transmitting data through a network is multiprotocol label switching (MPLS). In an MPLS network, data packets are assigned labels. Packet-forwarding decisions may be made solely on the contents of the labels, without the need to examine the packet itself. With this technique, end-to-end circuits can be created over the network using a number of types of transport media or protocols.
In general, MPLS functions by prefixing packets with a 32-bit MPLS header. These MPLS-labeled packets are switched at network devices after a “label lookup” that defines the next destination hop for the MPLS-packet based on the label. One disadvantage of MPLS, however, is that the MPLS labels add additional bandwidth overhead to network communications.